package com.fanketly.funacg2.ui.navigation

import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.filled.History
import androidx.compose.material.icons.filled.Home
import androidx.compose.material.icons.filled.Search
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material.icons.filled.Tag
import androidx.compose.ui.graphics.vector.ImageVector
import com.fanketly.funacg2.R
import com.fanketly.funacg2.ui.screen.destinations.FavouriteScreenDestination
import com.fanketly.funacg2.ui.screen.destinations.HistoryScreenDestination
import com.fanketly.funacg2.ui.screen.destinations.HomeDestination
import com.fanketly.funacg2.ui.screen.destinations.SearchScreenDestination
import com.fanketly.funacg2.ui.screen.destinations.SettingDestination
import com.fanketly.funacg2.ui.screen.destinations.TagsScreenDestination
import com.ramcosta.composedestinations.spec.DirectionDestinationSpec


sealed class DrawerDestination(
    val direction: DirectionDestinationSpec,
    val icon: ImageVector,
    val label: Int,
) {
    object Home : DrawerDestination(HomeDestination, Icons.Filled.Home, R.string.title_home)
    object Search :
        DrawerDestination(SearchScreenDestination, Icons.Filled.Search, R.string.title_search)

    object Tags : DrawerDestination(TagsScreenDestination, Icons.Filled.Tag, R.string.title_tags)
    object Favourite : DrawerDestination(
        FavouriteScreenDestination,
        Icons.Filled.Favorite,
        R.string.title_favourite
    )

    object History : DrawerDestination(
        HistoryScreenDestination,
        Icons.Filled.History,
        R.string.title_history
    )

    object Setting : DrawerDestination(
        SettingDestination,
        Icons.Filled.Settings,
        R.string.title_setting
    )
}